1. 问题
1 | import java.util.concurrent.*; |
输出结果
1 | 100.0 |
没有报错信息.
2. 解决方案探索
2.1 方法一:放弃submit改用execute
1 | executorService.execute(new DivTask(100, i)); |
1 | Exception in thread "pool-1-thread-1" java.lang.ArithmeticException: / by zero |
2.2 方法二:将submit的返回值打印
1 | Future re = executorService.submit(new DivTask(100, i)); |
1 | java.util.concurrent.ExecutionException: java.lang.ArithmeticException: / by zero |
3. 解决方案对比
上面的解决方案一无法定位到问题是从哪里提交的
方案二可以知道问题是从哪里提交的
推荐采用方案二.
4. 参考链接
<< Java高并发程序设计 >>(葛一鸣 郭超)